#!/usr/bin/python3
# _*_ coding: utf-8 _*_
#
# Copyright (C) 2023 - 2023 heihieyouheihei, Inc. All Rights Reserved 
#
# @Time    : 2023/1/1 10:30
# @Author  : heihieyouheihei
# @File    : base5_grammar_04.py
# @IDE     : PyCharm
# 分割.合并字符串

# 1. 分割字符串:split()方法
# 基本语法:listname = str.split(sep,maxsplit)
# sep:分割符, 空格.换行."\n".制表符"\t"都可以作为一个空白符进行分割,如果我们不指定分割符就以这些空白符作为分割符
# maxsplit: 是用来指定分割次数的, 如果不指定次数或者把他的值写为-1表示没有限制次数,能分割多少就分割多少
str1 = "你  有 多 自信, \n世界 就有 多 相信你"    # 创建一个字符串对象
print("分割1:没有指定分割符的结果",str1.split())    # 使用split()方法进行分割,没有指定分割符
print("分割2:指定分割符为1个' '的结果",str1.split(' '))    # 指定分割符为1个' '
print("分割3:指定分割符为1个' ',分割次数为5次的结果",str1.split(' ',5))    # 分割次数为5次,就会产生6个元素,前5个元素是按照''进行分割的,后面的没有分割就是剩下的元素组成的
# 当我们使用split()进行分割的时候也可以指定多个字符进行分割
print("分割4:指定多个字符进行分割的结果",str1.split('\n'))

# 情景模拟
# 从字符串中分割出要@的好友
str2 = "@明日科技 @扎克伯格 @俞敏洪 @勤奋的天使"
list = str2.split(' ')    # 用空格分割字符串
for item in list:     # 通过for语句得到输出的列表(字符串分割之后就会得到一个列表的形式)
    print(item[1:])    # 使用切片,从第二个元素开始取,第二个元素的索引值是1, 输出每个好友,也就是去掉@符号

# Python的切片知识补充:
# 1、切片使用第一个元素和最后一个元素的索引，中间使用冒号分割，并使用中括号"[]"包起来，形成切片
# 2、如果从列表第一个元素开始，切片中第一个元素的索引可以省略，如item[:10]
# 3、如果切片到最后一个元素结束，切片中最后一个元素的索引可以省略，如item[91:]
# 4、切片可以使用for循环进行遍历

# 2.合并字符串
# 合并字符串与拼接字符串不同,它会把多个字符串采用固定的分隔符连接在一起
# strnew = string.join(iterable)    # string:合并时的分隔符.join(课迭代对象,里面所有元素是以字符串形式来表示的,可迭代对象可以是列表可以是元组)

# 情景模拟
list1 = ['明日科技','扎克伯格','俞敏洪','勤奋的天使']    # 定义一个包含4个元素的列表
str3 = " @".join(list1)    # 使用空格和@ 应用join()方法进行连接
print("拼接后的字符串列表:",str3)    # 这个结果显示"明日科技"前面没有@,所以要自己加上
print("添加@之后的结果为: ","@"+str3)